跳到主要内容

使用 Node-RED 发送电子邮件

本教程演示如何使用 Node-RED 从您的 OV80i 摄像头设置自动电子邮件通知。您将学习如何配置 Gmail 集成,并创建发送检测警报、系统状态更新和故障通知的流程,直接发送到您的邮箱。

您将构建的内容: 一个自动电子邮件系统,使用 Gmail SMTP 将 OV80i 检测结果、警报和通知发送给指定收件人。

实际应用场景: 当检测失败时即时收到电子邮件警报,向管理层发送每日质量报告,或自动通知维护团队系统问题——所有这些均由您的视觉检测系统自动完成。

先决条件

  • 具有 Node-RED 访问权限的 OV80i 摄像头
  • 用于发送邮件的 Gmail 账户
  • Node-RED 流程的基本理解
  • 访问 Google 账户安全设置权限

教程概述

我们将构建: 一个自动发送带有检测结果和系统警报的电子邮件通知的 Node-RED 流程。

所需时间: 20-30 分钟(包括 Gmail 设置)

学习技能: Gmail 应用密码设置、SMTP 配置、自动电子邮件通知

步骤 1:设置 Gmail 应用密码

1.1 启用两步验证

  1. 登录您的 Google 账户,访问 accounts.google.com
  2. 点击左侧导航菜单中的“安全”
  3. 找到“登录 Google”部分
  4. 点击“两步验证”
  5. 按照提示启用两步验证(如果尚未启用)
备注

启用两步验证后,才能创建应用密码。

1.2 生成应用密码

  1. 启用两步验证后返回“安全”页面
  2. 点击“应用密码”(位于“登录 Google”下)
  3. 选择应用类型为“邮件”
  4. 选择设备类型为“其他”
  5. 输入名称,如“OV80i Node-RED 邮件”
  6. 点击“生成”

1.3 保存您的应用密码

  1. 复制 Google 显示的 16 位字符密码
  2. 安全保存 — 您将在 Node-RED 配置中使用它
  3. 注意: 此密码仅显示一次,如遗失需重新生成

检查点: 您应已保存一条用于 Node-RED 的 16 位 Gmail 应用密码。

步骤 2:安装邮件节点(如有需要)

2.1 检查邮件节点

  1. 在 OV80i 摄像头上打开 Node-RED
  2. 在左侧调色板中查找输出部分的“email”节点
  3. 如果缺失,则需要安装邮件包

2.2 安装邮件包(如需)

  1. 点击 Node-RED 的汉堡菜单(≡)
  2. 选择“管理调色板”
  3. 点击“安装”标签
  4. 搜索“node-red-node-email”
  5. 点击对应包旁的“安装”

步骤 3:创建基础邮件流程

3.1 添加所需节点

  1. 导航至 IO Block > 配置 I/O 以访问 Node-RED
  2. 从调色板拖拽以下节点到画布:
    • Inject 节点(用于测试)
    • Email 节点(输出部分)
  3. 连接 inject 节点的输出到 email 节点的输入

3.2 基础流程结构

Inject → Email

流程目的: 简单邮件发送,用于测试和基础通知。

image.png

步骤 4:配置邮件内容

4.1 设置 Inject 节点

  1. 双击 inject 节点打开属性
  2. 设置负载(payload):
    • 负载类型:字符串(string)
    • 负载值:您的邮件正文文本(例如:“来自 OV80i 的检测警报”)
  3. 添加邮件主题:
    • 点击“+ 添加” 添加属性

    • 属性名:topic

    • 属性值:您的邮件主题(例如:“OV80i 检测警报”)

      image.png

4.2 示例基础配置

负载(邮件正文):

检测已完成,站点 1
状态:触发警报
时间:请查看时间戳详情

主题(邮件标题):

OV80i 检测警报 - 站点 1

4.3 保存 Inject 配置

  1. 给节点命名,例如“邮件触发器”
  2. 点击“完成” 保存配置

步骤 5:配置邮件 SMTP 设置

5.1 设置 Email 节点

  1. 双击 email 节点打开属性
  2. 配置基本设置:
    • 名称:发送警报邮件(或其他描述性名称)
    • 收件人:接收邮件地址(例如 quality@company.com

5.2 配置 Gmail SMTP

  1. 服务器smtp.gmail.com
  2. 端口465
  3. 勾选“使用安全连接”
  4. 认证类型:Basic
  5. 用户ID:您的完整 Gmail 地址(例如 alerts@company.com
  6. 密码:步骤 1 中生成的 16 位应用密码

5.3 安全设置

  1. 勾选“检查服务器证书有效性”
  2. 确认所有设置正确无误
  3. 点击“完成”保存邮件节点配置

检查点: 邮件节点无错误提示,显示收件人地址。

image.png

步骤 6:测试邮件流程

6.1 部署并测试

  1. 点击右上角“部署”按钮
  2. 等待“部署成功”消息
  3. 点击 inject 节点按钮(左侧灰色方块)

6.2 验证邮件发送

  1. 检查收件邮箱是否收到测试邮件
  2. 若未收到,检查垃圾邮件文件夹
  3. 查看 Node-RED 调试面板是否有错误信息

6.3 如有需要,排查故障

常见问题:

  • 应用密码错误:重新生成 Gmail 应用密码
  • SMTP 设置错误:确认服务器和端口正确
  • 防火墙限制:确保允许 SMTP 出站流量

步骤 7:与检测结果集成

7.1 连接检测流程

要基于检测结果发送邮件:

  1. 找到您的主检测流程(以“All Block Outputs”开头)
  2. 将邮件流程作为检测处理的分支添加
  3. 连接到检测逻辑之后,但与最终结果并行

7.2 集成流程示例

All Block Outputs → [检测逻辑] → 最终通过/失败

格式化邮件 → 发送邮件

image.png

7.3 动态邮件内容

用 function 节点替换 inject 节点,实现动态内容:

// 基于检测结果的动态邮件
const result = msg.payload.result ? "PASSED" : "FAILED";
const timestamp = new Date().toLocaleString();
const station = global.get("station_name") || "Unknown Station";

// 设置邮件主题
msg.topic = `Inspection ${result} - ${station}`;

// 设置邮件正文
msg.payload = `检测报告:
状态:${result}
站点:${station}
时间:${timestamp}
图片:${msg.payload.image_url || "无可用图片"}

请审核并采取相应措施。`;

return msg;

步骤 8:完整流程示例

8.1 导入现成流程

您可以导入以下完整流程 JSON:

[
{
"id": "email_node_1",
"type": "e-mail",
"name": "发送检测警报",
"server": "smtp.gmail.com",
"port": "465",
"secure": true,
"authtype": "BASIC",
"to": "quality@company.com"
},
{
"id": "format_email",
"type": "function",
"name": "格式化邮件内容",
"func": "const result = msg.payload.result ? 'PASSED' : 'FAILED';\nmsg.topic = `Inspection ${result}`;\nmsg.payload = `Status: ${result}\\nTime: ${new Date()}`;\nreturn msg;"
}
]

8.2 根据需求自定义

  1. 更新邮件地址为您的组织邮箱
  2. 修改邮件内容以符合具体需求
  3. 调整触发时机和条件
  4. 生产部署前充分测试

故障排除

常见问题

问题现象解决方案
认证失败出现“登录失败”错误确认应用密码正确且已启用两步验证
连接超时无邮件发送,出现超时错误检查防火墙设置,确认 SMTP 服务器和端口正确
邮件进入垃圾箱邮件被送达但在垃圾邮件文件夹将发件人加入安全列表,优化邮件内容
流程未触发无调试输出检查流程连接和触发条件

调试您的邮件流程

  1. 在每个步骤后添加调试节点以跟踪数据
  2. 查看 Node-RED 日志获取详细错误信息
  3. 必要时用外部邮件客户端测试 SMTP 设置
  4. 确认摄像头到 Gmail 服务器的网络连接

成功!您的邮件集成已完成

您的 OV80i 摄像头现在可以:

自动发送检测结果的邮件通知

发送包含检测详情的丰富格式邮件

支持多收件人和升级工作流

提供定期报告和汇总

根据检测结果实现条件消息发送

最佳实践

邮件管理

  • 使用描述性主题,明确状态指示
  • 保持信息简洁但内容完整
  • 包含时间戳和站点标识
  • 通知中提供可操作信息

安全与可靠性

  • 保护应用密码,安全存储并定期更换
  • 使用专用邮箱账户发送系统通知
  • 定期测试邮件发送确保可靠性
  • 监控发送失败,准备备用通知方案

性能考虑

  • 限制邮件发送频率,避免被识别为垃圾邮件
  • 针对不同警报类型使用合适收件人列表
  • 对高流量系统实施速率限制
  • 注意邮件大小,避免包含过大附件

后续步骤

设置邮件通知后:

  1. 创建不同类型警报的邮件模板
  2. 设置各利益相关方的分发列表
  3. 实现关键问题的升级工作流
  4. 创建管理层定期报告
  5. 与其他通知系统集成(短信、Teams 等)

🔗 另请参阅